package br.com.unip.menudroidweb.bean;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.unip.menudroidweb.facade.PedidoFacade;
import br.com.unip.menudroidweb.model.Pedido;

@ViewScoped
@ManagedBean (name = "pedidoBean")
public class PedidoBean extends AbstractBean implements Serializable {
	private static final long serialVersionUID = -5487366943193218338L;

	private Pedido pedido;
	private List<Pedido> pedidos;
	private PedidoFacade pedidoFacade;
	private List<Pedido> pedidosFinalizados;


	
	public void updatePedido() {
		try {
			pedido.setFinalizado(true);
			getPedidoFacade().updatePedido(pedido);
			closeDialog();
			displayInfoMessageToUser("Pedido finalizado com sucesso!");
			loadPedido();
			resetPedido();
		} catch (Exception e) {
			keepDialogOpen();
			displayErrorMessageToUser("Ocorreu um erro ao finalizar o pedido! Tente novamente.");
			e.printStackTrace();
		}
	}
	
	
	
	public Pedido getPedido() {
		if (pedido == null) {
			pedido = new Pedido();
		}
		return pedido;
	}
	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
	}

	public List<Pedido> getAllPedido() {
		if (pedidos == null) {
			loadPedido();
		}

		return pedidos;
	}
	public void setPedidos(List<Pedido> pedidos) {
		this.pedidos = pedidos;
	}
	public PedidoFacade getPedidoFacade() {
		if (pedidoFacade == null) {
			pedidoFacade = new PedidoFacade();
			
		}

;
		return pedidoFacade;
	}
	public void setPedidoFacade(PedidoFacade pedidoFacade) {
		this.pedidoFacade = pedidoFacade;
	}

	public void loadPedido(){
		pedidos = getPedidoFacade().listarPedidoFinalizado(false);
	}

	public void resetPedido(){
		pedido = new Pedido();
	}


	public void loadPedidoFinalizado(){
		pedidosFinalizados = getPedidoFacade().listarPedidoFinalizado(true);
	}

	public List<Pedido> getPedidosFinalizados() {
		if (pedidosFinalizados == null) {
			loadPedidoFinalizado();
			
		}

		return pedidosFinalizados;
	}



	public void setPedidosFinalizados(List<Pedido> pedidosFinalizados) {
		this.pedidosFinalizados = pedidosFinalizados;
	}

	public String redirecionar(){
		return "/pedido/pedidosfinalizados.xhtml";
	}



}
